settings: Call gtk_system_setting_changed
authorMatthias Clasen <mclasen@redhat.com>
Tue, 21 Apr 2020 19:45:21 +0000 (15:45 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 22 Apr 2020 23:29:59 +0000 (19:29 -0400)
Replace calls to gtk_style_context_reset_widgets by
gtk_system_setting_changed, with the appropriate setting,
and add style invalidation where required.

gtk/gtksettings.c

index c6b9634213c4cb34d3889c24b27256d2e2a470c2..fe1af8e9bfecb0d010ac8a34ef70fcdab1c5401b 100644 (file)
@@ -29,7 +29,7 @@
 #include "gtkstyleproviderprivate.h"
 #include "gtktypebuiltins.h"
 #include "gtkversion.h"
-#include "gtkwidget.h"
+#include "gtkwidgetprivate.h"
 
 #include "gdk/gdk-private.h"
 
@@ -1246,32 +1246,28 @@ gtk_settings_notify (GObject    *object,
     case PROP_FONT_NAME:
       settings_update_font_values (settings);
       settings_invalidate_style (settings);
-      gtk_style_context_reset_widgets (settings->display);
+      gtk_system_setting_changed (settings->display, GTK_SYSTEM_SETTING_FONT_NAME);
       break;
     case PROP_THEME_NAME:
     case PROP_APPLICATION_PREFER_DARK_THEME:
       settings_update_theme (settings);
       break;
     case PROP_XFT_DPI:
-      /* This is a hack because with gtk_rc_reset_styles() doesn't get
-       * widgets with gtk_widget_style_set(), and also causes more
-       * recomputation than necessary.
-       */
-      gtk_style_context_reset_widgets (settings->display);
+      gtk_system_setting_changed (settings->display, GTK_SYSTEM_SETTING_DPI);
       break;
     case PROP_XFT_ANTIALIAS:
     case PROP_XFT_HINTING:
     case PROP_XFT_HINTSTYLE:
     case PROP_XFT_RGBA:
       settings_update_font_options (settings);
-      gtk_style_context_reset_widgets (settings->display);
+      gtk_system_setting_changed (settings->display, GTK_SYSTEM_SETTING_FONT_CONFIG);
       break;
     case PROP_FONTCONFIG_TIMESTAMP:
       if (settings_update_fontconfig (settings))
-        gtk_style_context_reset_widgets (settings->display);
+        gtk_system_setting_changed (settings->display, GTK_SYSTEM_SETTING_FONT_CONFIG);
       break;
     case PROP_ENABLE_ANIMATIONS:
-      gtk_style_context_reset_widgets (settings->display);
+      settings_invalidate_style (settings);
       break;
     case PROP_CURSOR_THEME_NAME:
     case PROP_CURSOR_THEME_SIZE: